El protocol de missatgeria en temps real (amb acrònim RTMP) és un protocol de comunicació per transmetre àudio, vídeo i dades a través d'Internet. Desenvolupat originalment com a protocol propietari per Macromedia per a la transmissió entre Flash Player i Flash Communication Server, Adobe (que va adquirir Macromedia) ha publicat una versió incompleta de l'especificació del protocol per a ús públic.[1]
El protocol RTMP té múltiples variacions:
Tot i que la motivació principal per a RTMP era ser un protocol per reproduir vídeos Flash, també s'utilitza en algunes altres aplicacions, com ara Adobe LiveCycle Data Services ES.
L'RTMP defineix diversos canals virtuals en els quals es poden enviar i rebre paquets, i que funcionen independentment els uns dels altres. Per exemple, hi ha un canal per gestionar les sol·licituds i respostes RPC, un canal per a dades de flux de vídeo, un canal per a dades de flux d'àudio, un canal per a missatges de control fora de banda (negociació de la mida del fragment, etc.), etc.. Durant una sessió RTMP típica, diversos canals poden estar actius simultàniament en un moment donat. Quan es codifiquen les dades RTMP, es genera una capçalera de paquet. La capçalera del paquet especifica, entre altres qüestions, l'ID del canal on s'ha d'enviar, una marca de temps de quan es va generar (si cal) i la mida de la càrrega útil del paquet. A continuació, aquesta capçalera va seguida del contingut de càrrega útil real del paquet, que es fragmenta segons la mida del fragment acordada actualment abans d'enviar-se a través de la connexió. La capçalera del paquet mai es fragmenta i la seva mida no compta per a les dades del primer fragment del paquet. En altres paraules, només la càrrega útil real del paquet (les dades dels mitjans) està subjecta a fragmentació.
A un nivell superior, l'RTMP encapsula fluxos multimèdia d'àudio MP3 o AAC i de vídeo FLV1 i pot fer trucades de procediment remot (RPC) mitjançant el format de missatge d'acció. Qualsevol servei RPC necessari es fa de manera asíncrona, utilitzant un sol model de sol·licitud/resposta de client/servidor, de manera que no cal una comunicació en temps real.[4]